package com.zhangtai.modules.entity.employee;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.zhangtai.config.LongJsonDeserializer;
import com.zhangtai.config.LongJsonSerializer;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;


/**
 * @author chenshun
 * @email sunlightcs@gmail.com
 * @date 2020-09-01 09:16:02
 */
@Data
@TableName("tb_dimission_info")
public class DimissionInfoEntity implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @TableId
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long id;
    /**
     * 流程编号
     */
    private String processNumber;
    /**
     * 申请人id
     */
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long applyOid;
    /**
     * 申请人code
     */
    private String applyCode;
    /**
     * 申请人名字
     */
    private String applyName;
    /**
     * 申请日期
     */
    private Date applyTime;
    /**
     * 部门id
     */
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long applyDepId;
    /**
     * 部门
     */
    private String applyDepartment;
    /**
     * 员工id
     */
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long oid;
    /**
     * 工作年限 司龄
     */
    private String workingYears;
    /**
     * 离职日期
     */
    private Date dimissionTime;
    /**
     * 离职方式
     * export const modeList = [
     * { label: '辞职', value: 0 },
     * { label: '辞退', value: 1 },
     * { label: '终止、解除合同', value: 2 },
     * { label: '开除、除名', value: 3 },
     * { label: '调到集团外', value: 10 },
     * { label: '死亡', value: 11 },
     * { label: '其他', value: 12 }
     * ]
     */

    private String mode;
    /**
     * 离职类型
     * export const dimissionTypeList = [
     * { label: '主动离职', value: 0 },
     * { label: '被动离职', value: 1 }
     * ]
     */
    private String dimissionType;
    /**
     * 离职原因
     */
    private String reason;
    /**
     * 保密协议
     */
    private String secrecy;
    /**
     * 审批状态：0.待审批，1审批中 2. 已审批，3.作废
     */
    private Integer rurnoverStatus;
    /**
     * 违约金补偿
     */
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long liquidatedDamages;
    /**
     * 离职去向
     */
    private String whereabouts;
    /**
     * 备注
     */
    private String remark;
    /**
     * 附件路径
     */
    private String urlIds;
    /**
     * 0:正常。1：删除
     */
    private Integer isDelete;
    /**
     * 创建时间
     */
    private Date createTime;
    /**
     * 消息推送状态 0：未发送 1已发送
     */
    private Integer isRemind;

    /**
     * 交接人
     */
    private String associate;

    /**
     * 插入时间 流程编号用
     */
    private Date insetDate;

    /**
     * bpm详情
     */
    private String bpmDetailUrl;


    /**
     * 身份证号
     */
    private String idcard;

    /**
     * 手机号码
     */
    private String mobile;

    /**
     * bpm类型  默认7
     */
    private Integer sptype;

    /**
     * 主管辅导
     */
    private Integer spervisorCoaching;
    /**
     * 薪资报酬
     */
    private Integer slaryCompensation;
    /**
     * 工作时间
     */
    private Integer operatingHours;
    /**
     * 培训获得
     */
    private Integer trainingObtained;
    /**
     * 升迁机会
     */
    private Integer promotionOpportunity;
    /**
     * 沟通渠道
     */
    private Integer communicationChannel;


    /**
     * 员工id
     */
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long unitId;
}
